package com.shujia.profile

import com.shujia.profile.behavior.order.{UserProfileOrderCount, UserProfileOrderMoney, UserProfileOrderTime}
import com.shujia.profile.info.natural.UserProfileSex
import com.shujia.profile.info.platform.{UserProfileChannel, UserProfileMemberId, UserProfileRegTime, UserProfileSubOpenId}
import com.shujia.profile.info.social.{UserProfileAddress, UserProfilePhone}
import com.shujia.util.SparkUtil
import org.apache.spark.sql.{DataFrame, SparkSession}

object UserProfileRun {
  def main(args: Array[String]): Unit = {

    //获取参数,在提交任务时，在包名后面增加的参数
    val ds: String = args.head

    //spark环境
    val spark: SparkSession = SparkUtil.getSession()


    //将所有的用户画像类放到一个集合中
    val userProfiles = List(
      new UserProfileSex(), // 性别
      new UserProfilePhone(), //手机号
      new UserProfileAddress(), //地址
      new UserProfileMemberId(), //用户编号
      new UserProfileRegTime(), //注册时间
      new UserProfileChannel(), //渠道
      new UserProfileSubOpenId(), //是否关注
      new UserProfileOrderCount(), //订单总量
      new UserProfileOrderTime(), //最近下单时间
      new UserProfileOrderMoney() //下单总金额
    )

    //循环执行用户画像
    for (userProfile <- userProfiles) {
      userProfile.run(spark, ds)
    }
  }
}
